package presentation;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.Locale;
import java.util.ResourceBundle;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.SoftBevelBorder;


import presentation.Ihm.ZoneCreationChampionnat;
/**
 * Class IhmGestionEquipes
 * Package presentation
 * Dfinition de la fenetre de gestion des quipes
 * 
 * @author Herv Le Fouler et Lionel Lasry
 */
public class IhmGestionEquipes {
	private String nomChampionnat;
	public JPanel zoneCreation  = new JPanel();
	public JPanel zoneEquipes = new JPanel();
	public 	Locale local = Locale.getDefault();
	public 	ResourceBundle bundle = ResourceBundle.getBundle( "presentation/traduction", local);
	
	/**
	 * Constructeur de IhmGestionEquipes
	 * @param String nomChampionnat
	 */
	public IhmGestionEquipes(String nomChampionnat){
		this.nomChampionnat = nomChampionnat;
	}
	/**
	 * Lance l'affichage de la liste des quipes
	 * Ajout des deux JPanels : cration et liste
	 * Appel la mthode addElementsZoneCreationEquipe() de la classe ZoneCreationEquipe pour peupler la fentre
	 */
	public void lancementEcranEquipes(){
		JFrame fenetreGestionEquipe = new JFrame(bundle.getString("titre_ecran_equipes")+" "+nomChampionnat);
		ZoneCreationEquipe zone = new ZoneCreationEquipe();
		zone.addElementsZoneCreationEquipe();
		zoneCreation.setVisible(true);
		fenetreGestionEquipe.setSize(600,700);
		fenetreGestionEquipe.add(zoneEquipes,BorderLayout.NORTH);
		fenetreGestionEquipe.add(zoneCreation,BorderLayout.CENTER);	
		//fenetreGestionEquipe.pack();
		fenetreGestionEquipe.setVisible(true);
	}
	/**
	 * Class ZoneCreationEquipe
	 * Package presentation
	 * Dfinition des zones liste des quipes et cration des quipes
	 * @author Herv Le Fouler et Lionel Lasry
	 */
	public class ZoneCreationEquipe{
		/**
		 * Peuple la zone de liste des quipes et de cration
		 * Ajoute les boutons de crations
		 * Rcupre la liste des quipes et affiche leurs caractristiques
		 */
		public void addElementsZoneCreationEquipe(){
			JTextField champCreationEquipe = new JTextField(15);
			JButton validerCreationEquipe = new JButton(bundle.getString("creer_equipes"));
			JButton boutonRefresh = new JButton(bundle.getString("refresh_team"));
			JLabel labelEquipe = new JLabel("");
			labelEquipe.setVisible(true);
			ListenAjouterEquipes monListener = new ListenAjouterEquipes(nomChampionnat,champCreationEquipe,labelEquipe,zoneEquipes,zoneCreation);
			validerCreationEquipe.addActionListener(monListener);
			boutonRefresh.addActionListener(monListener);
			//Ajout du listener de cration d'quipe
			zoneEquipes.add(champCreationEquipe);
			zoneEquipes.add(validerCreationEquipe);
			zoneEquipes.add(boutonRefresh);
			zoneEquipes.add(labelEquipe,BorderLayout.SOUTH);
			ChampionnatInterface championnatClient;
			try {
				//zoneEquipes.removeAll();
				championnatClient = (ChampionnatInterface) Naming.lookup("Championnat");
				championnatClient.findChampionnat(nomChampionnat);
				championnatClient.getListeEquipes();
				for(Iterator i = championnatClient.getListeEquipes().iterator(); i.hasNext();){
					EquipeInterface e = (EquipeInterface) i.next();
					JLabel labelEquipeDynamique = new JLabel("Nom Equipe : "+e.getNom());
					labelEquipeDynamique.setSize(450,50);
					SoftBevelBorder cadre = new SoftBevelBorder(SoftBevelBorder.LOWERED);
					labelEquipeDynamique.setBorder(cadre);
					labelEquipeDynamique.setPreferredSize(new Dimension(450,25));
					zoneCreation.add(labelEquipeDynamique);
				}
				
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (RemoteException e) {
				e.printStackTrace();
			} catch (NotBoundException e) {
				e.printStackTrace();
			}
		}
	}
}
